Robot apparatus and control method

ABSTRACT

A robot apparatus includes a robot arm, an end effector provided in the robot arm and configured to hold a workpiece, and a controller configured to perform a control process for controlling the end effector to release the workpiece on a basis of a first torque acting on the end effector in a predetermined direction in a state in which the end effector is holding the workpiece.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to robot technology.

Description of the Related Art

Today, robots including a robot arm and an end effector are widely usedin factories and the like for automation of production. In particular,robots that cooperate with people are increasingly used. As an exampleof a cooperative work between a person and a robot, an operation ofdirectly passing a workpiece held by an end effector to a person can bementioned. Japanese Patent Laid-Open No. 2008-200847 discloses controlof a robot in an operation of passing a workpiece from the robot to aperson.

In the operation of passing a workpiece from a robot to a person, it isrequired to make sure that the workpiece is passed to the person withoutthe robot dropping the workpiece. Further, there is a demand that thetakt time in such a passing operation is shortened.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention, a robot apparatusincludes a robot arm, an end effector provided in the robot arm andconfigured to hold a workpiece, and a controller configured to perform acontrol process for controlling the end effector to release theworkpiece on a basis of a first torque acting on the end effector in apredetermined direction in a state in which the end effector is holdingthe workpiece.

According to a second aspect of the present invention, an interfaceapparatus is configured to transmit a command to release a workpiece toan end effector holding the workpiece. The command is transmitted on abasis of a torque applied to the end effector in a predetermineddirection by a user's operation.

According to a third aspect of the present invention, a controlapparatus is configured to control an end effector holding a workpieceto release the workpiece, on a basis of a torque acting on the endeffector in a predetermined direction in a state in which the endeffector is holding the workpiece.

According to a fourth aspect of the present invention, an end effectoris provided in a robot arm and is configured to hold a workpiece. Theworkpiece is released on a basis of a torque acting on the end effectorin a predetermined direction in a state of holding the workpiece.

According to a fifth aspect of the present invention, a control methodfor controlling an end effector provided in a robot arm and configuredto hold a workpiece includes causing the end effector to hold theworkpiece, and controlling the end effector to release the workpiece, ona basis of a torque acting on the end effector in a predetermineddirection.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an explanatory diagram of a robot apparatus according to afirst embodiment.

FIG. 2 is a block diagram illustrating a control system of the robotapparatus according to the first embodiment.

FIG. 3A is a schematic diagram illustrating a cooperative work betweenthe robot and an operator according to the first embodiment.

FIG. 3B is a schematic enlarged view of the vicinity of a robot hand ofthe robot according to the first embodiment.

FIG. 4 is a block diagram for describing functions of a controlapparatus according to the first embodiment.

FIG. 5 is a flowchart of a control method according to the firstembodiment.

FIG. 6 is an explanatory diagram of a robot apparatus according to asecond embodiment.

FIG. 7 is a block diagram for describing functions of a controlapparatus according to the second embodiment.

FIG. 8 is a flowchart of a control method according to a thirdembodiment.

FIG. 9 is an explanatory diagram of a rotation operation of a robot handaccording to the third embodiment.

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will be described in detail belowwith reference to drawings.

First Embodiment

FIG. 1 is an explanatory diagram of a robot apparatus 100 according to afirst embodiment. The robot apparatus 100 includes a robot 110, and acontrol apparatus 400 serving as an example of an interface apparatus.The robot 110 is a manipulator and includes a robot arm 200 and a robothand 300 serving as an example of an end effector. The robot hand 300 isprovided on the robot arm 200. The control apparatus 400 controls therobot arm 200 and the robot hand 300. The robot hand 300 holds aworkpiece W such as a part or a tool.

For example, the robot arm 200 is a vertically articulated robot arm.The robot arm 200 includes a plurality of links. For example, the robotarm 200 includes seven links 210 to 216. The plurality of links 210 to216 are rotatably interconnected by a plurality of joints. For example,the plurality of links 210 to 216 are rotatably interconnected by sixjoints J1 to J6. The plurality of links 210 to 216 are interconnected inseries.

Specifically, the link 211 is connected to the link 210 via the joint J1so as to be rotatable about an axis C1 with respect to the link 210. Thelink 212 is connected to the link 211 via the joint J2 so as to berotatable about an axis C2 with respect to the link 211. The link 213 isconnected to the link 212 via the joint J3 so as to be rotatable aboutan axis C3 with respect to the link 212. The link 214 is connected tothe link 213 via the joint J4 so as to be rotatable about an axis C4with respect to the link 213. The link 215 is connected to the link 214via the joint J5 so as to be rotatable about an axis C5 with respect tothe link 214. The link 216 is connected to the link 215 via the joint J6so as to be rotatable about an axis C6 with respect to the link 215.

Among the plurality of links 210 to 216, the link 210 serving as a baseportion positioned at the root end is fixed to a stand 150. Among theplurality of links 210 to 216, the robot hand 300 is fixed to the link216 serving as a flange portion positioned at the distal end. Therefore,by changing the orientation of the robot arm 200, the robot hand 300 canbe moved to an arbitrary position within a movable range. Particularly,the robot hand 300 can be rotated together with the link 216 by rotatingthe link 216 with respect to the link 215. To be noted, although therobot hand 300 is directly connected to the link 216 in the firstembodiment, an additional member may be provided between the robot hand300 and the link 216.

Here, a coordinate system based on the link 210, that is, a globalcoordinate system based on the installation environment is defined as anXYZ coordinate system. The XYZ coordinate system is an orthogonalcoordinate system. The Z axis is an axis extending in a directionparallel to a gravity direction G. The X axis and the Y axis are axesperpendicular to the Z axis. A local coordinate system based on therobot hand 300 is defined as an αβγ coordinate system. The αβγcoordinate system is an orthogonal coordinate system. The γ axis is anaxis extending in a direction parallel to the axis C6. The α axis andthe β axis are axes perpendicular to the γ axis.

The robot hand 300 is configured to hold the workpiece W. The robot hand300 includes a hand body 301, and a plurality of fingers openably andclosably supported by the hand body 301. For example, the robot hand 300includes two fingers 302. The hand body 301 is fixed to the link 216.The two fingers 302 can move close to and away from each other, that is,open and close to hold and release the workpiece W.

FIG. 2 is a block diagram illustrating a control system of the robotapparatus 100 according to the first embodiment. The control apparatus400 is constituted by a computer, and includes a central processingunit: CPU 401 that is a processor. The CPU 401 serves as an example of acontroller. In addition, the control apparatus 400 includes a read-onlymemory: ROM 402 and a hard disk drive: HDD 404 as storage portions. Inaddition, the control apparatus 400 includes a recording disk drive 405and an I/O 406 serving as an input/output interface. The CPU 401, theROM 402, the HDD 404, the recording disk drive 405, and the I/O 406 arecommunicably interconnected via a bus 410.

The ROM 402 is a non-transitory storage device. The ROM 402 stores abasic program that is read out by the CPU 401 when turning the computeron. The RAM 403 is a transitory storage device used for computation bythe CPU 401. The HDD 404 is a non-transitory storage device that storesvarious data such as results of computation by the CPU 401. In the firstembodiment, the HDD 404 stores a program 411 for causing the CPU 401 toexecute a control method that will be described later. The recordingdisk drive 405 can read out various data, programs, and the likerecorded in a recording disk 412.

The I/O 406 is connected to the robot arm 200, the robot hand 300, aninput device 501, a display apparatus 502, and an external storagedevice 503.

The input device 501 is an apparatus with which an operator can inputdata, for example, a teaching device such as a teaching pendant. Theteaching pendant is operated by the operator to teach a position of therobot arm 200 or the robot hand 300. The display apparatus 502 is adisplay that displays various images under control of the CPU 401. Theexternal storage device 503 is a non-transitory storage device such asan HDD or a universal serial bus: USB memory.

The robot arm 200 includes an I/O 231 that is an input/output interface,and a plurality of driving units. In the first embodiment, the robot arm200 includes driving units of the same number as the joints, that is,six driving units 251 to 256. The driving units 251 to 256 respectivelycorrespond to the joints J1 to J6.

The driving unit 251 includes a driver 261, a motor 271, an encoder 281,and a torque sensor 291. The driving unit 252 includes a driver 262, amotor 272, an encoder 282, and a torque sensor 292. The driving unit 253includes a driver 263, a motor 273, an encoder 283, and a torque sensor293. The driving unit 254 includes a driver 264, a motor 274, an encoder284, and a torque sensor 294. The driving unit 255 includes a driver265, a motor 275, an encoder 285, and a torque sensor 295. The drivingunit 256 includes a driver 266, a motor 276, an encoder 286, and atorque sensor 296.

The drivers 261 to 266 each include an unillustrated microcomputer, anunillustrated A/D conversion circuit, an unillustrated motor drivingcircuit, and so forth. The plurality of drivers 261 to 266 and the I/O231 are communicably interconnected via a bus 240. The I/O 231 iscommunicably connected to the I/O 406 of the control apparatus 400. Thedrivers 261 to 266 may be each disposed at any position. For example,the drivers 261 to 266 are each disposed in one of the links of therobot arm 200.

The driving units 251 to 256 each have substantially the sameconfiguration and function. The motors 271 to 276 respectively drive thejoints J1 to J6. Specifically, the motors 271 to 276 each drive,directly or via an unillustrated transmission mechanism such as areduction gear, the link on the distal end side with respect to the linkon the root end side among two links interconnected by corresponding oneof the joints J1 to J6. The encoders 281 to 286 are rotary encoders thatare sensors that respectively output signals corresponding to therotational positions, that is, rotation angles θ1 to θ6 of rotationshafts of the respective motors 271 to 276. The torque sensors 291 to296 are respectively disposed in the joints J1 to J6. The torque sensors291 to 296 are each a sensor that outputs a signal corresponding to atorque acting on the link on the distal end side with respect to thelink on the root end side among two links interconnected bycorresponding one of the joints J1 to J6. That is, the torque sensors291 to 296 respectively output signals corresponding to torques τ1 to τ6respectively acting on the joints J1 to J6. Particularly, the torquesensor 296 is a sensor that outputs a signal corresponding to the torqueτ6 acting on the robot hand 300 in the rotation direction about the axisC6 illustrated in FIG. 1.

The drivers 261 to 266 respectively receive signals from the encoders281 to 286 at predetermined periodicity, and convert the signals intodigital signals respectively indicating the rotation angles θ1 to θ6. Inaddition, the drivers 261 to 266 respectively receive signals from thetorque sensors 291 to 296 at predetermined periodicity, and convert thesignals into digital signals respectively indicating the torques τ1 toτ6.

In addition, the drivers 261 to 266 respectively control the motors 271to 276 on the basis of difference between respective angle commandvalues and the respective rotation angles θ1 to θ6 in the case where thedrivers 261 to 266 have received the respective angle command valuesfrom the CPU 401 of the control apparatus 400. As a result of this, therotation angles θ1 to θ6 of the motors 271 to 276 can be made closer tothe respective angle command values. In addition, the drivers 261 to 266respectively control the motors 271 to 276 on the basis of differencebetween respective torque command values and the respective torques τ1to τ6 in the case where the drivers 261 to 266 have received therespective torque command values from the CPU 401 of the controlapparatus 400. As a result of this, the torques τ1 to τ6 acting on thejoints J1 to J6 can be made closer to the respective torque commandvalues. The control described above is performed periodically atpredetermined periodicity.

Therefore, the CPU 401 of the control apparatus 400 can control theorientation of the robot arm 200 by transmitting angle command values tothe drivers 261 to 266. This control will be referred to as positioncontrol. In addition, the CPU 401 of the control apparatus 400 cancontrol the force of the robot hand 300 by transmitting torque commandvalues to the drivers 261 to 266. This control will be referred to astorque control or force control.

The robot hand 300 includes an I/O 331 that is an input/outputinterface, and a driving unit 351. The driving unit 351 includes adriver 361, a motor 371, an encoder 381, and a force sensor 391. Thedriver 361 includes an unillustrated microcomputer, an unillustrated A/Dconversion circuit, an unillustrated motor driving circuit, and soforce. The driver 361 and the I/O 331 are communicably interconnected bya bus 340. The I/O 331 is communicably connected to the I/O 406 of thecontrol apparatus 400. The driver 361 may be disposed at any position.For example, the driver 361 is disposed in the hand body 301.

The motor 371 drives the plurality of fingers 302 illustrated in FIG. 1.Specifically, the motor 371 drives the plurality of fingers 302 to openor close the plurality of fingers 302 directly or via an unillustratedtransmission mechanism such as a rack-and-pinion mechanism. The encoder381 is a rotary encoder that is a sensor that outputs a signalcorresponding to the rotational position, that is, the rotation angle ofthe rotation shaft of the motor 371. The force sensor 391 is a sensorthat outputs a signal corresponding to the force acting on the pluralityof fingers 302, that is, the force of holding the workpiece W.

The driver 361 receives a signal from the encoder 381 at predeterminedperiodicity and converts the signal into a digital signal indicating therotation angle. The driver 361 receives a signal from the force sensor391 at predetermined periodicity and converts the signal into a digitalsignal indicating the force. The driver 361 transmits the digital signalindicating the rotation angle and the digital signal indicating theforce to the CPU 401 and the control apparatus 400.

In addition, the driver 361 controls the motor 371 on the basis ofdifference between an angle command value and the rotation angle of themotor 371 based on the signal from the encoder 381 in the case where thedriver 361 has received the angle command value from the CPU 401 of thecontrol apparatus 400. As a result of this, the rotation angle of themotor 371 can be made closer to the angle command value. That is, thepositions of the plurality of fingers 302 in an opening/closingdirection are controlled. That is, the opening/closing operation of theplurality of fingers 302 is controlled. In addition, the driver 361controls the motor 371 on the basis of difference between a forcecommand value and the force based on the signal from the force sensor391 in the case where the driver 361 has received the force commandvalue from the CPU 401 of the control apparatus 400. As a result ofthis, the force of the fingers 302 holding the workpiece W is madecloser to the force command value. The control described above isperiodically performed at predetermined periodicity.

Therefore, the CPU 401 of the control apparatus 400 can control therobot hand 300 holding and releasing the workpiece W by transmitting theangle command value to the driver 361. In addition, the CPU 401 of thecontrol apparatus 400 can control the force of the robot hand 300holding the workpiece W by transmitting the force command value to thedriver 361.

To be noted, although a case where the HDD 404 serves as anon-transitory computer-readable recording medium storing the program411 will be described in the first embodiment, the configuration is notlimited to this. The program 411 may be recorded in any recording mediumas long as the recording medium is a non-transitory computer-readablerecording medium. For example, the ROM 402, the recording disk 412, theexternal storage device 503, or the like may be used as the recordingmedium storing the program 411. Specific examples of this recordingmedium include flexible disks, hard disks, optical disks, magneto-photdisks, CD-ROMs, CD-Rs, magnetic tapes, nonvolatile memories, and ROMs.

FIG. 3A is a schematic diagram illustrating a cooperative work betweenthe robot 110 and an operator A in the first embodiment. The operator Ais a user. Examples of the cooperative work include an operation ofpassing the workpiece W from the robot 110 to the operator A asillustrated in FIG. 3A. When passing the workpiece W from the robot 110to the operator A, it is preferable that the robot 110 releases theworkpiece W in a state in which the operator A is securely supportingthe workpiece W. This is because particularly in the case where theworkpiece W is a heavy object, all the weight of the workpiece W is puton the operator A when the robot 110 releases the workpiece W, and thusthe operator A needs to be prepared for this weight.

When passing the workpiece W from the robot 110 to the operator A, therobot arm 200 is maintained in a predetermined orientation P0. Thepredetermined orientation P0 is an orientation in which the workpiece Wis passed to the operator A. For example, the predetermined orientationP0 is an orientation in which the robot hand 300 is below the link 216that is the distal end of the robot arm 200 in the gravity direction G,that is, an orientation in which the fingers 302 are below the hand body301 in the gravity direction G.

FIG. 3B is an enlarged schematic view of the vicinity of the robot hand300 in the robot 110 illustrated in FIG. 3A. A force Fz acts in thegravity direction G on the robot hand 300, that is, on the link 216 ofthe robot arm 200 due to the weight of the robot hand 300 and the weightof the workpiece W. The gravity direction G and the direction in whichthe γ axis extends are parallel to each other. The robot hand 300 isrotatable in a rotation direction R6 about the axis C6. The rotationdirection R6 about the axis C6 is the same as a rotation direction Rγabout the γ axis. Further, the torque τ6 in the rotation direction R6 isthe same as a torque τγ in the rotation direction Rγ. The rotationdirection R6, that is, the rotation direction Rγ serves as apredetermined direction.

In the first embodiment, the control apparatus 400 causes the robot hand300 to release the workpiece W when it is detected that the workpiece Whas been twisted by the operator A. Twisting the workpiece W meansapplying a torque equal to or greater than a threshold value to theworkpiece W about the γ axis, and includes a case where the robot hand300 does not rotate due to the position control of the robot arm 200.

In the case where the workpiece W is a heavy object, the operator Asupports the workpiece W by both hands as illustrated in FIG. 3A. Sincethe operator A is using both hands, it is difficult for the operator Ato additionally operate a button. In the first embodiment, the operatorA can, by twisting the workpiece W, notify the control apparatus 400that the operator A is ready to support the workpiece W to receive theworkpiece W.

FIG. 4 is a block diagram for describing functions of the controlapparatus according to the first embodiment. The CPU 401 illustrated inFIG. 2 executes the program 411, and thus functions as a detectionportion 420 and an operation controller 430 illustrated in FIG. 4. To benoted, although a case where the functions of the detection portion 420and the operation controller 430 are realized by the single CPU 401 willbe described, the functions of the detection portion 420 and theoperation controller 430 may be realized by a plurality of CPUs. Inaddition, although a case where the CPU 401 realizes the functions ofthe detection portion 420 and the operation controller 430 with softwarewill be described, the detection portion 420 and the operationcontroller 430 may be realized by a circuit configuration, that is, ahardware configuration. In addition, FIG. 4 is a diagram for describingthe flow of control, and illustration of the drivers 261 to 266 and 361is omitted. The detection portion 420 includes a force detection portion421 and an orientation detection portion 422.

The orientation detection portion 422 obtains information of therotation angles θ1 to θ6 that is a detection result of the encoders 281to 286. The orientation detection portion 422 detects an orientation Pof the robot arm 200 on the basis of the information of the rotationangles θ1 to θ6 and size information of the robot 110. In the firstembodiment, the detection of the orientation P of the robot arm 200involves computation. For example, this computation includes calculationof forward kinematics of the robot. To be noted, the size information ofthe robot 110 is registered in advance in the HDD 404 illustrated inFIG. 2.

The force detection portion 421 obtains information of the torques τ1 toτ6 that is a detection result of the torque sensors 291 to 296, andinformation of the orientation P of the robot arm 200. The forcedetection portion 421 detects a force F acting on the robot hand 300 onthe basis of the information of the torques τ1 to τ6, the information ofthe orientation P, and information of the weight of each portion of therobot 110. In the first embodiment, the detection of the force Finvolves computation. The force F is a six-dimensional force vector inthe αβγ coordinate system, and includes three translational forces Fα,Fβ, and Fγ in the respective axes α, β, and γ, and three rotationalforces about the respective axes α, β, and γ, that is, three torques τα,τβ, and τγ. To be noted, the information of the weight of each portionof the robot 110 is registered in advance in the HDD 404 illustrated inFIG. 2.

The force detection portion 421 detects the force Fz acting on the robothand 300 in the gravity direction G on the basis of the information ofthe force F. To be noted, if the robot arm 200 is controlled to apredetermined orientation P0, the force Fz in the gravity direction G isthe force Fγ. When the robot arm 200 is in the predetermined orientationP0, the other forces than the force Fz are 0 if no external force isapplied to the robot 110.

The detection portion 420 outputs the information of the orientation Pof the robot arm 200, the information of the torque τγ acting on therobot hand 300, and the information of the force Fz acting on the robothand 300 in the gravity direction G to the operation controller 430.

FIG. 5 is a flowchart of a control method according to the firstembodiment. The CPU 401 executes the program 411, and thus functions asthe detection portion 420 and the operation controller 430 illustratedin FIG. 4 to execute steps S101 to S109 of the control methodillustrated in FIG. 5.

In step S101, the operation controller 430 controls the motor 371 tocause the robot hand 300 to hold the workpiece W.

Next, in step S102, the operation controller 430 controls the motors 271to 276 of the robot arm 200 such that the orientation of the robot arm200 is the predetermined orientation P0 serving as a target orientationin a state in which the robot hand 300 is holding the workpiece W.According to this position control, the robot arm 200 is positioned inthe predetermined orientation P0, and is then maintained in thepredetermined orientation P0. Further, even if an external force isapplied to the robot 110, the robot arm 200 is maintained in thepredetermined orientation P0 against the external force due to theposition control. The predetermined orientation P0 is an orientation inwhich the workpiece W is passed to the operator A as illustrated in FIG.3A. Information of the predetermined orientation P0 is set in advance inthe HDD 404. As a result of this processing of step S102, the robot arm200 is maintained still in the predetermined orientation P0. As a resultof the robot arm 200 maintained still in the predetermined orientationP0, that is, as a result of temporarily stopping the robot arm 200 inthe predetermined orientation P0, the operator A can recognize that theoperator A can receive the workpiece W from the robot 110.

In step S103, the detection portion 420 detects the force Fz acting onthe robot hand 300 in the gravity direction G. In this step S103, thedetection portion 420 detects the force Fz in the state in which therobot hand 300 is holding the workpiece W after the operation controller430 has controlled the robot arm 200 to the predetermined orientation P0in step S102. The operation controller 430 obtains the information ofthe force Fz from the detection portion 420. Here, the force Fz at atime t will be referred to as a force Fz(t). In the first embodiment,the detection portion 420 detects the force Fz at a predetermined periodΔt. That is, the operation controller 430 obtains the information of theforce Fz from the detection portion 420 each time the predeterminedperiod Δt elapses.

In step S104, the operation controller 430 compares the force Fz(t) witha force Fz(t−Δt). For example, the operation controller 430 determineswhether Fz(t)−Fz(t−Δt)<0 holds. The force Fz(t−Δt) is the force Fzobtained in the last cycle before the force Fz(t). That is, theoperation controller 430 determines whether or not the force Fz in thegravity direction G has decreased from the state in which the robot arm200 has been controlled to the predetermined orientation P0. The forceFz detected when the operator A supports the workpiece W from below issmaller than the force Fz detected when the robot arm 200 has stopped inthe predetermined orientation P0. That is, in step S104, the operationcontroller 430 determines whether or not the operator A is supportingthe workpiece W.

In the case where Fz(t)−Fz(t−Δt)≥0 holds, that is, in the case where theforce Fz has not decreased and the result of step S104 is NO, theoperator A is not sufficiently supporting the workpiece W, and thereforethe operation controller 430 returns to the processing of step S103.

In the case where Fz(t)−Fz(t−Δt)<0 holds, that is, in the case where theforce Fz has decreased and the result of step S104 is YES, the operationcontroller 430 starts counting time in step S105.

In step S106, the operation controller 430 determines whether or not apredetermined time has elapsed since the start of time counting, and inthe case where the predetermined time has elapsed, that is, in the casewhere the result of step S106 is YES, the operation controller 430returns to the processing of step S103.

In the case where the predetermined time has not elapsed, that is, inthe case where the result of step S106 is NO, the detection portion 420detects the torque τγ acting on the robot hand 300 in the rotationdirection Rγ in step S107. In this step S106, the robot hand 300 isholding the workpiece W. The operation controller 430 obtains theinformation of the torque τγ from the detection portion 420. Thedetection portion 420 detects the torque τγ at the predetermined periodΔt. That is, the operation controller 430 obtains the information of thetorque τγ from the detection portion 420 each time the predeterminedperiod Δt elapses.

In step S108, the operation controller 430 determines whether or not thetorque τγ exceeds a threshold value TH serving as a predetermined value.The threshold value TH is a value set in advance in the HDD 404.

In step S108, the operation controller 430 determines whether or not theoperator A has twisted the workpiece W held by the robot hand 300. Inthe first embodiment, the operation controller 430 controls the robotarm 200 in step S102 such that the robot arm 200 maintains thepredetermined orientation P0. Therefore, the orientation of the robotarm 200 is maintained in the predetermined orientation P0 even if theoperator A twists the workpiece W, that is, even if the torque τγ isapplied to the robot hand 300.

In the case where the torque τγ does not exceed the threshold value TH,that is, in the case where τγ≤TH holds and the result of step S108 isNO, the operation controller 430 returns to the processing of step S106.In the case where the predetermined time has elapsed without the torqueτγ exceeding the threshold value TH, that is, in the case where theresult of step S106 is YES, the operation controller 430 returns to theprocessing of step S103. That is, the process returns to step S103 ifthe operator A does not rotate the workpiece W for a certain time.

In the case where the torque τγ exceeds the threshold value TH, that is,in the case where τγ>TH holds and the result of step S108 is YES, theoperation controller 430 controls the motor 371 of the robot hand 300 instep S109 such that the robot hand 300 releases the workpiece W. Theseries of operations from step S105 to step S109 serve as a controlprocess. As the control process, the operation controller 430 controlsthe robot hand 300 to release the workpiece W on the basis of the torqueτ. Further, in steps S102 to S109, the operation controller 430 controlsthe robot arm 200 by position control.

As described above, the workpiece W is released from the robot hand 300by the operator A just performing a simple operation of twisting therobot hand 300 while supporting the workpiece W. Therefore, even whenthe operator A cannot use either of the hands, the operator A can easilynotify the control apparatus 400 that the operator A is ready forreceiving the workpiece W without performing an operation such aspushing a button. The control apparatus 400 can reliably pass theworkpiece W from the robot 110 to the operator A by using the operationon the workpiece W by the operator A as a trigger for opening the robothand 300. Further, since the operation of passing the workpiece W isperformed in response to the operation by the operator A, an additionalwaiting time does not have to be provided, and therefore the takt timeof the operation of passing the workpiece W can be shortened.

Second Embodiment

Next, a second embodiment will be described. FIG. 6 is an explanatorydiagram of a robot apparatus 100A according to the second embodiment. Inthe first embodiment described above, a case where the control apparatus400 detects the force acting on the robot hand 300 by using the torquesensors 291 to 296 incorporated in the robot arm 200 has been described.In the second embodiment, a robot arm 200A includes a six-axis forcesensor 290A instead of the torque sensors. The other elements of therobot arm 200A are substantially the same as those of the robot arm 200of the first embodiment, and therefore description thereof will beomitted.

The force sensor 290A is fixed to the link 216. That is, the forcesensor 290A is disposed between the hand body 301 of the robot hand 300and the link 216. The force sensor 290A is a sensor that supports therobot hand 300 and outputs a signal corresponding to translationalforces acting on the robot hand 300 in directions of three axes androtational forces about the three axes. The three axes are the α axis, βaxis, and γ axis. In the second embodiment, the control apparatus 400detects the force acting on the robot hand 300 by using the force sensor290A.

FIG. 7 is a block diagram for describing functions of the controlapparatus 400 according to the second embodiment. The CPU 401illustrated in FIG. 2 executes the program 411, and thus functions as adetection portion 420A and the operation controller 430 illustrated inFIG. 7. To be noted, although a case where the functions of thedetection portion 420A and the operation controller 430 are realized bythe single CPU 401 will be described, the functions of the detectionportion 420A and the operation controller 430 may be realized by aplurality of CPUs. In addition, although a case where the CPU 401realizes the functions of the detection portion 420A and the operationcontroller 430 with software will be described, the detection portion420A and the operation controller 430 may be realized by a circuitconfiguration, that is, a hardware configuration. In addition, FIG. 7 isa diagram for describing the flow of control, and illustration of thedrivers is omitted. The detection portion 420A includes a forcedetection portion 421A and the orientation detection portion 422.

The orientation detection portion 422 detects the orientation P of therobot arm 200A as described in the first embodiment. The force detectionportion 421A detects the force F on the basis of the signal from theforce sensor 290A. In the second embodiment, the detection of the forceF involves computation. The force F is a six-dimensional force vector inthe αβγ coordinate system, and includes three translational forces Fα,Fβ, and Fγ in the respective axes α, β, and γ, and three rotationalforces about the respective axes α, β, and γ, that is, the three torquesτα, τβ, and τγ.

The force detection portion 421A detects the force Fz acting on therobot hand 300 in the gravity direction G on the basis of theinformation of the force F. To be noted, if the robot arm 200A iscontrolled to the predetermined orientation P0, the force Fz in thegravity direction G is the force Fγ. When the robot arm 200A is in thepredetermined orientation P0, the other forces than the force Fz are 0if no external force is applied to the robot 110A.

The detection portion 420A outputs the information of the orientation Pof the robot arm 200A, the information of the torque τγ acting on therobot hand 300, and the information of the force Fz acting on the robothand 300 in the gravity direction G to the operation controller 430.

The operation controller 430 and the detection portion 420A executes thecontrol method illustrated in FIG. 5 described in the first embodiment.Therefore, also in the second embodiment, the workpiece W is releasedfrom the robot hand 300 by just the operator A illustrated in FIG. 3Aperforming a simple operation of twisting the robot hand 300 whilesupporting the workpiece W. Therefore, even when the operator A cannotuse either of the hands, the operator A can easily notify the controlapparatus 400 that the operator A is ready for receiving the workpiece Wwithout performing an operation such as pushing a button. The controlapparatus 400 can reliably pass the workpiece W from the robot 110A tothe operator A by using the operation on the workpiece W by the operatorA as a trigger for opening the robot hand 300. Further, since theoperation of passing the workpiece W is performed in response to theoperation by the operator A, an additional waiting time does not have tobe provided, and therefore the takt time of the operation of passing theworkpiece W can be shortened.

Third Embodiment

Next, a third embodiment will be described. FIG. 8 is a flowchart of acontrol method according to the third embodiment. In the thirdembodiment the configuration of the robot apparatus is the same as inthe first embodiment, and the control method of the robot by the controlapparatus is different. Therefore, in the description of the thirdembodiment, the description of the apparatus configuration is omitted asappropriate with reference to FIGS. 1 to 4. In addition, in theflowchart illustrated in FIG. 8, description of steps of in whichsubstantially the same processing is performed as in the steps of theflowchart illustrated in FIG. 5 will be omitted.

The CPU 401 illustrated in FIG. 2 and serving as an example of acontroller executes the program 411, and thus functions as the detectionportion 420 and the operation controller 430 illustrated in FIG. 4. InFIG. 8, the processing of steps S201 to S204 is the same as theprocessing of steps S101 to S104 illustrated in FIG. 5.

In the third embodiment, in step S205, the operation controller 430switches the control of the robot arm 200 from the position control toforce control. In step S205, the operation controller 430 sets thetorque command value corresponding to the joint J6 of the robot arm 200to a value τ_(C1) that is a sufficiently small value. This enables therobot hand 300 to, when the torque τγ is applied in the rotationdirection Rγ illustrated in FIG. 3B, rotate in the rotation direction Rγin which the torque τγ is applied. That is, the operation controller 430controls the robot arm 200 such that the robot hand 300 rotates inaccordance with the torque τγ applied to the robot hand 300.

In FIG. 8, the processing of steps S206 to S209 is the same as theprocessing of steps S105 to S108 illustrated in FIG. 5. To be noted, inthe third embodiment, the value τ_(C1) is equal to the threshold valueTH.

In the case where the torque τγ exceeds the threshold value TH, that is,in the case where τγ>TH holds and the result of step S209 is YES, instep S210, the operation controller 430 increases the torque commandvalue corresponding to the joint J6 from the value τ_(C1) as therotation angle increases. FIG. 9 is an explanatory diagram of therotation operation of the robot hand 300 according to the thirdembodiment. To be noted, in FIG. 9, the robot hand 300 and the workpieceW before the rotation are indicated by solid lines, and the robot hand300 and the workpiece W after the rotation are indicated by brokenlines.

The processing of step S210 will be described in detail. The operationcontroller 430 controls the robot arm 200 so as to increase a torqueapplied to the robot hand 300 in a direction Rγ′, which is opposite tothe rotation direction Rγ of the robot hand 300 according to the torqueτγ, as the robot hand 300 rotates more in accordance with the torque τγ.At this time, the operation controller 430 increases the torque commandvalue in a range equal to or below a preset upper limit value τ_(C2) asthe rotation angle of the robot hand 300 in the rotation direction Rγincreases. Here, in the third embodiment, a relationship ofτ_(C1)≤τ_(C2) is satisfied. As a result of this, when a rotational forceis applied to the robot hand 300 by the operator, the operationcontroller 430 can give the operator an impression that it graduallybecomes harder to rotate the robot hand 300 as the robot hand 300rotates more in the rotation direction Rγ.

In the case where the robot hand 300 has rotated by a predeterminedangle θγ in accordance with the torque τγ, the operation controller 430controls the robot arm 200 in step S211 so as to stop the rotation ofthe robot hand 300. That is, the operation controller 430 stops therotation of the joint J6 of the robot arm 200. Specifically, in the casewhere the joint J6 has rotated by the predetermined angle θγ, theoperation controller 430 stops the rotation of the joint J6 by switchingthe control of the joint J6 of the robot arm 200 from the torque controlto the position control.

According to the processing of steps S210 and S211 described above,particularly step S211, the operator can recognize that the robot hand300 is about to release the workpiece W. To be noted, in step S211, theoperation controller 430 may control the robot arm 200 such that therobot hand 300 quickly vibrates when stopping the rotation of the robothand 300 after the robot hand 300 has rotated by a predetermined angle.

After stopping the rotation of the robot hand 300, the operationcontroller 430 controls the motor 371 of the robot hand 300 in step S212such that the robot hand 300 releases the workpiece W. The series ofprocessing from step S205 to step S212 serve as a control process.

As described above, according to the third embodiment, the workpiece Wis released from the robot hand 300 by just the operator A performing asimple operation of twisting the robot hand 300 in the state ofsupporting the workpiece W similarly to the first embodiment. Therefore,even when the operator A cannot use either of the hands, the operator Acan easily notify the control apparatus 400 that the operator A is readyfor receiving the workpiece W without performing an operation such aspushing a button. The control apparatus 400 can reliably pass theworkpiece W from the robot 110 to the operator A by using the operationon the workpiece W by the operator A as a trigger for opening the robothand 300. Further, since the operation of passing the workpiece W isperformed in response to the operation by the operator A, an additionalwaiting time does not have to be provided, and therefore the takt timeof the operation of passing the workpiece W can be shortened.

To be noted, although a case where the robot arm has the sameconfiguration as in the first embodiment has been described in the thirdembodiment, the configuration is not limited to this, and the robot armmay have the same configuration as in the second embodiment.

The present invention should not be limited to the embodiments describedabove, and can be modified in many ways within the technical concept ofthe present invention. In addition, the effects described in theembodiments are merely enumeration of most preferable effects that canbe achieved by the present invention, and the effects of the presentinvention are not limited to those described in the embodiments.

Although a case where the robot arm is a vertically articulated robotarm has been described in the first to third embodiments, theconfiguration is not limited to this. Possible examples of the robot arminclude various robot arms such as horizontally articulated robot arms,parallel link robot arms, and orthogonal robots.

Although a case where the predetermined orientation P0 of the robot armis an orientation in which the robot hand is directed verticallydownward has been described in the first to third embodiments, theconfiguration is not limited to this. For example, the predeterminedorientation of the robot arm may be an orientation in which the robothand is inclined with respect to the gravity direction, or anorientation in which the robot hand is directed vertically upward. Ineither orientation, the force acting on the robot hand in the gravitydirection can be detected.

Although a case where the force Fz is detected in step S103 asillustrated in FIG. 5 has been described in the first embodiment, theconfiguration is not limited to this, and the processing of steps S103and S104 may be omitted. Similarly, although a case where the force Fzis detected in step S203 has been described in the third embodiment, theconfiguration is not limited to this, and the processing of steps S203and S204 may be omitted.

In addition, although a case where an interface apparatus is constitutedby the control apparatus 400 has been described in the variousembodiments described above, the configuration is not limited to this.For example, the interface apparatus may be constituted by an endeffector incorporating a microcomputer including a CPU capable ofrealizing the various embodiments described above. In this case, thecommand to release the workpiece in response to the torque applied tothe end effector by the operator may be input to the microcomputer.

In addition, although a case where the workpiece is passed from therobot apparatus 100 to the operator has been described as an example inthe various embodiments described above, this passing of workpiece maybe a part of a process of manufacturing a product. For example, theprocess of manufacturing a product may be a process of causing the robotapparatus 100 to hold a first member and causing the robot apparatus 100to mount the first member on a second member. In the process ofmanufacturing the product, the workpiece to be passed from the robotapparatus 100 to the operator may be the manufactured product. Inaddition, the workpiece passed from the robot apparatus 100 to theoperator may be a member used for the manufacture of the product, forexample, the first member or the second member.

In addition, the various embodiments described above are applicable tomachines capable of automatically performing operations ofextension/contraction, bending/spreading, vertical movement, horizontalmovement, or pivoting movement, or a combination of these operations onthe basis of information in a storage device provided in a controlapparatus.

OTHER EMBODIMENTS

Embodiment(s) of the present invention can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2020-028370, filed Feb. 21, 2020, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. A robot apparatus comprising: a robot arm; an endeffector provided in the robot arm and configured to hold a workpiece;and a controller configured to perform a control process for controllingthe end effector to release the workpiece on a basis of a first torqueacting on the end effector in a predetermined direction in a state inwhich the end effector is holding the workpiece.
 2. The robot apparatusaccording to claim 1, wherein the controller performs the controlprocess in a case where the first torque has exceeded a predeterminedvalue.
 3. The robot apparatus according to claim 1, wherein thecontroller performs the control process in a case where a force actingon the end effector in a gravity direction decreases after the robot armis controlled to a predetermined orientation in the state in which theend effector is holding the workpiece.
 4. The robot apparatus accordingto claim 3, wherein, in the control process, the controller controls therobot arm such that the robot arm maintains the predeterminedorientation even in a case where the first torque acts on the endeffector holding the workpiece.
 5. The robot apparatus according toclaim 3, wherein, in the control process, the controller controls therobot arm such that the end effector rotates in accordance with thefirst torque acting on the end effector.
 6. The robot apparatusaccording to claim 5, wherein, in the control process, the controllercontrols the robot arm such that a second torque applied to the endeffector in a direction opposite to a rotation direction of the endeffector according to the first torque increases as the end effectorrotates in accordance with the first torque.
 7. The robot apparatusaccording to claim 5, wherein, in the control process, the controllercontrols the robot arm to stop rotation of the end effector in a casewhere the end effector has rotated by a predetermined angle inaccordance with the first torque.
 8. The robot apparatus according toclaim 7, wherein, in the control process, the controller controls theend effector to release the workpiece after the rotation of the endeffector is stopped.
 9. The robot apparatus according to claim 1,wherein the robot arm comprises a sensor configured to output a signalcorresponding to the first torque, and wherein the controller obtainsinformation of the first torque on a basis of the signal output from thesensor.
 10. The robot apparatus according to claim 3, wherein the robotarm comprises a plurality of joints and a plurality of sensors eachcorresponding to one of the plurality of joints, wherein the pluralityof sensors are each configured to output a signal corresponding to atorque acting on the corresponding one of the plurality of joints, andwherein the controller obtains information of the force in the gravitydirection on a basis of the signals output from the plurality ofsensors.
 11. The robot apparatus according to claim 3, wherein the robotarm comprises a sensor configured to support the end effector and outputa signal corresponding to translational forces in three axes androtational forces about the three axes that act on the end effector, andwherein the controller obtains information of the force in the gravitydirection on a basis of the signal output from the sensor.
 12. Amanufacturing method for manufacturing a product by using the robotapparatus according to claim
 1. 13. An interface apparatus configured totransmit a command to release a workpiece to an end effector holding theworkpiece, wherein the command is transmitted on a basis of a torqueapplied to the end effector in a predetermined direction by a user'soperation.
 14. A control apparatus configured to control an end effectorholding a workpiece to release the workpiece, on a basis of a torqueacting on the end effector in a predetermined direction in a state inwhich the end effector is holding the workpiece.
 15. An end effectorconfigured to hold a workpiece, wherein the workpiece is released on abasis of a torque acting on the end effector in a predetermineddirection in a state of holding the workpiece.
 16. A control method forcontrolling an end effector provided in a robot arm and configured tohold a workpiece, the control method comprising: causing the endeffector to hold the workpiece; and controlling the end effector torelease the workpiece, on a basis of a torque acting on the end effectorin a predetermined direction.
 17. A non-transitory computer-readablerecording medium storing a program for causing the computer to executethe control method according to claim 16.